服务化-mysql-06 单机实现mysql8.0主从数据库同步

一、历史版本删除

1.1 停止服务
1)在任务管理栏找到mysql结束任务。
2)管理员权限打开cmd命令行,net stop mysql(前提是知道你安装服务时,服务的名称是mysql)
1.2 卸载程序
1.3 删除服务
管理员启动命令行,查询mysql服务还是否存在,如果存在直接删除(下图是因为没有用管理员权限删除导致的)
在这里插入图片描述
1.4 删除环境变量,否则有可能会使用环境变量中配的全局mysql
1.5 重新初始化mysql,需要删除data文件夹的数据

二、安装主从数据库

在这里插入图片描述

2.1 配置my.ini(单机多mysql实例需要区别端口号)

主数据库,端口号默认设置3306

[mysqld]
port=3306
basedir=D:\\mysql\mysql_8.0_master
datadir=D:\\mysql\mysql_8.0_master\data
character-set-server=utf8mb4
default-storage-engine=INNODB
#配置缓存池
innodb_buffer_pool_size=512M
# 主库设置 server_id需要区别开
server_id=1
log_bin=master-bin
log_bin-index=master-bin.index
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

从数据库,服务端端口号和客户端端口号都设置为3308(两个端口号不统一,会造成连接失败)

[mysqld]
port=3308
basedir=D:\\mysql\mysql_8.0_slave
datadir=D:\\mysql\mysql_8.0_slave\data
character-set-server=utf8mb4
default-storage-engine=INNODB
# 主库设置 server_id需要区别开
server_id=1
log_bin=slave-bin
log_bin-index=slave-bin.index
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3308
default-character-set=utf8mb4

2.2 初始化data文件夹

新建data文件夹即可

2.3 主从数据库安装

2.3.1 主数据库安装
管理员权限,cd到主数据库的bin目录。

#console可视初始化安装
mysqld --initialize --console
#安装并定义服务名mysql_master
mysqld --install mysql_master
#启动mysql_master服务
net start mysql_master
#使用mysql自带的客户端,连接服务端连接器(pwd在前面console中已给出随机值)
mysql -uroot -p
#将root账号密码修改为root
alter user 'root'@'localhost' identified with mysql_native_password by 'root'

在这里插入图片描述
2.3.2 从数据库安装
命令行与上方基本一样,注意取名注册的服务名称带区别即可
在这里插入图片描述
这样主从数据库就都安装成功了,并且都已经启动了。
中途如果有安装失败,需要停止服务、删除注册服务即可。

#终止服务
net stop mysql
#删除注册服务信息
sc delete mysql

三、配置主从服务

因为slave数据库需要到连接到master数据库,并由master的bin log推动日志到slave。需要在主数据库中为slave配置USER账号信息。
在这里插入图片描述

3.1 创建主数据库的从属账号

CREATE USER 'follow'@'%' IDENTIFIED WITH mysql_native_password BY 'master_follow';

允许slave数据库在任何机器ip上使用follow账号连接主数据库。
在这里插入图片描述

3.2 指定新建的follow为主从同步账号

#指定从属关系
grant replication slave on *.* to 'follow'@'%';
#将mysql USER和privilege表中的用户信息和权限信息更新到内存中。
flush privileges;

3.3 查看master binlog的起始位置(用于记录后续从属数据库开始同步的日志位置)

 show master status;

在这里插入图片描述

3.4 从库配置主库信息

#从库设置主库信息
mysql>change master to master_host='127.0.0.1',
master_port=3306,
master_user='follow',
master_password='follow',
master_log_file='master-bin.000002',
master_log_pos=1130;
#开启从库热备
start slave;

在这里插入图片描述
查看备份数据同步存在异常,slave_IO_Running:No,原因是主从数据库使用的server_id都是1,这样没法slave。
在这里插入图片描述只有手动设置一下server_id,在my.ini文件里也同步改一下就可以了。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csfun1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值